home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / FilePermissionCollection.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.7 KB  |  83 lines

  1. package java.io;
  2.  
  3. import java.security.Permission;
  4. import java.security.PermissionCollection;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.Enumeration;
  8. import java.util.List;
  9. import java.util.Vector;
  10.  
  11. final class FilePermissionCollection extends PermissionCollection implements Serializable {
  12.    private transient List perms = new ArrayList();
  13.    private static final long serialVersionUID = 2202956749081564585L;
  14.    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[]{new ObjectStreamField("permissions", Vector.class)};
  15.  
  16.    public FilePermissionCollection() {
  17.    }
  18.  
  19.    public void add(Permission var1) {
  20.       if (!(var1 instanceof FilePermission)) {
  21.          throw new IllegalArgumentException("invalid permission: " + var1);
  22.       } else if (this.isReadOnly()) {
  23.          throw new SecurityException("attempt to add a Permission to a readonly PermissionCollection");
  24.       } else {
  25.          synchronized(this) {
  26.             this.perms.add(var1);
  27.          }
  28.       }
  29.    }
  30.  
  31.    public boolean implies(Permission var1) {
  32.       if (!(var1 instanceof FilePermission)) {
  33.          return false;
  34.       } else {
  35.          FilePermission var2 = (FilePermission)var1;
  36.          int var3 = var2.getMask();
  37.          int var4 = 0;
  38.          int var5 = var3;
  39.          synchronized(this) {
  40.             int var7 = this.perms.size();
  41.  
  42.             for(int var8 = 0; var8 < var7; ++var8) {
  43.                FilePermission var9 = (FilePermission)this.perms.get(var8);
  44.                if ((var5 & var9.getMask()) != 0 && var9.impliesIgnoreMask(var2)) {
  45.                   var4 |= var9.getMask();
  46.                   if ((var4 & var3) == var3) {
  47.                      return true;
  48.                   }
  49.  
  50.                   var5 = var3 ^ var4;
  51.                }
  52.             }
  53.  
  54.             return false;
  55.          }
  56.       }
  57.    }
  58.  
  59.    public Enumeration elements() {
  60.       synchronized(this) {
  61.          return Collections.enumeration(this.perms);
  62.       }
  63.    }
  64.  
  65.    private void writeObject(ObjectOutputStream var1) throws IOException {
  66.       Vector var2 = new Vector(this.perms.size());
  67.       synchronized(this) {
  68.          var2.addAll(this.perms);
  69.       }
  70.  
  71.       ObjectOutputStream.PutField var3 = var1.putFields();
  72.       var3.put("permissions", var2);
  73.       var1.writeFields();
  74.    }
  75.  
  76.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  77.       ObjectInputStream.GetField var2 = var1.readFields();
  78.       Vector var3 = (Vector)var2.get("permissions", (Object)null);
  79.       this.perms = new ArrayList(var3.size());
  80.       this.perms.addAll(var3);
  81.    }
  82. }
  83.